The present invention relates to data networks, and more specifically a technique for determining multi-path latency in data networks which utilize a multi-homed transport protocol.
Over the past decade, there has been a dramatic growth in the use of wide area networks such as the Internet for enabling communications among different computer systems. Traditionally, the primary transport protocol used to communicate between different host computers via the Internet is the well-known TCP protocol. The standardized TCP protocol may be used to establish a communication link between a single pair of IP addresses. Thus, for example, communication between 2 different host computer systems may be achieved using the TCP protocol, wherein a communication link is established between the 2 hosts using a specific pair of IP addresses which are associated with each respective host.
One problem with the conventional TCP protocol is that it is not designed to accommodate multiple IP addressed associated with a specific host. For example, if Host A has associated with it two IP addresses (e.g. IP-A, IP-B), and a communication link between Host A and Host Z is established using IP A, the communication link between Host A and Host Z will fail if IP-A goes down, regardless of whether IP-B is working properly.
Recently, newer transport protocols have been proposed which provide for multi-homed capability in order to allow the transport protocol to be aware of multiple IP addresses on each side of the connection. An example of a communication link which utilizes a multi-homed transport protocol is illustrated in FIG. 1 of the drawings. As illustrated in FIG. 1, a communication link is established between two endpoints (i.e., Host A, Host Z) of an IP network. Each endpoint in the connection has associated with it multiple IP addresses. For example, Host A 102 has two IP addresses associated with it, namely, IP-A and IP-B, and Host Z 104 has two IP addresses associated with it, namely, IP-X and IP-Y. Using a multi-homed transport protocol, communication between Host A and Host B may be achieved using any combination of IP addresses associated with each endpoint. For example, different source/destination pairs may include IP-A/IP-X, IP-A/IP-Y, IP-B/IP-X, IP-B/IP-Y, etc.
One type of multi-homed protocol which may be used in the system of FIG. 1 is the Stream Control Transmission Protocol (SCTP). Stream Control Transmission Protocol (SCTP) is viewed as a layer between the SCTP user application (“SCTP user” for short) and a connectionless packet network service such as IP. The basic service offered by SCTP is the reliable transfer of user messages between peer SCTP users. It performs this service within the context of an association between two SCTP endpoints.
SCTP is connection-oriented in nature, but the SCTP association is a broader concept than the TCP connection. SCTP provides the means for each SCTP endpoint to provide the other endpoint (during association startup) with a list of transport addresses (i.e., multiple IP addresses in combination with an SCTP port) through which that endpoint can be reached and from which it will originate SCTP packets. The association spans over all of the possible source/destination combinations which may be generated from each endpoint's lists. RFC 2960, “Stream Control Transmission Protocol,” October 2000, authored by Stewart, et al., discloses the requirements for SCTP and specific packet formats, and is incorporated herein by reference for all purposes.
According to RFC 2960, an SCTP association is a protocol relationship between SCTP endpoints, composed of the two SCTP endpoints and protocol state information including Verification Tags and the currently active set of Transmission Sequence Numbers (TSNs), etc. An association can be uniquely identified by the transport addresses used by the endpoints in the association. An SCTP endpoint is the logical sender or receiver of SCTP packets. On a multi-homed host, an SCTP endpoint is represented to its peers as a combination of a set of eligible destination transport addresses to which SCTP packets can be sent and a set of eligible source transport addresses from which SCTP packets can be received. All transport addresses used by an SCTP endpoint typically use the same port number, but can use multiple IP addresses. A transport address is unique to an SCTP endpoint.
Because multi-homed protocols allow each endpoint of a connection to have multiple associated IP addresses, a number of issues arise relating to the selection of the source and destination addresses in an IP datagram. For example, the choice of the particular source address and destination address used in a packet may affect how quickly the packet arrives at the peer device, as well as how quickly the destination peer device generates a response. Accordingly, there exists a need to explore various issues relating to source and destination addresses selection in multi-homed protocols.